/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.switz.agendacita.persistence;

import com.switz.agendacita.dto.Recordatorio;
import com.switz.agendacita.persistence.iface.RecordatorioDao;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.jdbc.core.namedparam.SqlParameterSource;
import org.springframework.jdbc.core.simple.SimpleJdbcInsert;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import org.springframework.stereotype.Repository;

/**
 *
 * @author tey
 */
@Repository
public class RecordatorioDaoImpl extends JdbcDaoSupport implements RecordatorioDao{
    
    private NamedParameterJdbcTemplate namedParameterJdbcTemplate;
    @Autowired
    public RecordatorioDaoImpl(DataSource dataSource) {

        setDataSource(dataSource);
        this.namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(
				dataSource);
    }

    @Override
    public int insertRecordatorio(Recordatorio recordatorio) {
        
    
              SimpleJdbcInsert simpleJdbcInsert = new SimpleJdbcInsert(
                getJdbcTemplate().getDataSource())
                .withTableName("recordatorios");
           SqlParameterSource parameters = new BeanPropertySqlParameterSource(recordatorio);
           simpleJdbcInsert.execute(parameters);
          return getJdbcTemplate().queryForInt( "select last_insert_id()" );
    
    }


    @Override
    public void deleteRecordatorio(String id) {
        String query = "DELETE FROM recordatorios WHERE id = ?";
        getJdbcTemplate().update(query, new Object[]{id});
    }
    @Override
    public void updateRecordatorio(Recordatorio recordatorio) {
    
//        String query="UPDATE recordatorios SET idagenda =:idAgenda,fecha=:fecha,hora=:hora,mensaje=:mensaje,mail=:mail,movil=:movil WHERE id=:id";
//        SqlParameterSource parameterSource = new BeanPropertySqlParameterSource(recordatorio);
//        
//        namedParameterJdbcTemplate.update(query, parameterSource);
        
         String query="UPDATE recordatorios SET idagenda =:idAgenda, fecha=:fecha, hora=:hora, mensaje=:mensaje, mail=:mail, movil=:movil WHERE id=:id";;	
    	 MapSqlParameterSource params = new MapSqlParameterSource();
    	 params.addValue("idAgenda", recordatorio.getIdAgenda());
         params.addValue("fecha", recordatorio.getFecha());
         params.addValue("hora", recordatorio.getHora());
         params.addValue("mensaje", recordatorio.getMensaje());
         params.addValue("mail", recordatorio.getMail());
         params.addValue("movil", recordatorio.getMovil());
         params.addValue("id", recordatorio.getId());
              		
         namedParameterJdbcTemplate.update(query, params);
    }
    
     @Override
    public Integer getId(String idAgenda)
    {
        
        String sql="SELECT id FROM recordatorios WHERE idagenda=?";
        Integer idRecordatorio= (Integer)getJdbcTemplate().queryForObject(sql,new Object[]{idAgenda}, Integer.class);
        return idRecordatorio;
        
    
    }
}
